# -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.

SOURCES += [
    'pkixbuild_tests.cpp',
    'pkixcert_extension_tests.cpp',
    'pkixcert_signature_algorithm_tests.cpp',
    'pkixcheck_CheckExtendedKeyUsage_tests.cpp',
    'pkixcheck_CheckIssuer_tests.cpp',
    'pkixcheck_CheckKeyUsage_tests.cpp',
    'pkixcheck_CheckSignatureAlgorithm_tests.cpp',
    'pkixcheck_CheckValidity_tests.cpp',
    'pkixcheck_ParseValidity_tests.cpp',
    'pkixcheck_TLSFeaturesSatisfiedInternal_tests.cpp',

    # The naming conventions are described in ./README.txt.

    'pkixder_input_tests.cpp',
    'pkixder_pki_types_tests.cpp',
    'pkixder_universal_types_tests.cpp',
    'pkixgtest.cpp',
    'pkixnames_tests.cpp',
    'pkixocsp_CreateEncodedOCSPRequest_tests.cpp',
    'pkixocsp_VerifyEncodedOCSPResponse.cpp',
]

LOCAL_INCLUDES += [
    '../../include',
    '../../lib',
    '../lib',
]

FINAL_LIBRARY = 'xul-gtest'

include('../../warnings.mozbuild')

# These warnings are disabled in order to minimize the amount of boilerplate
# required to implement tests, and/or because they originate in the GTest
# framework in a way we cannot otherwise work around.
if CONFIG['GNU_CXX']:
  CXXFLAGS += [
    '-Wno-error=shadow',
    '-Wno-old-style-cast',
  ]
  if CONFIG['CLANG_CXX']:
    CXXFLAGS += [
      '-Wno-exit-time-destructors',
      '-Wno-global-constructors',
      '-Wno-used-but-marked-unused',
    ]
elif CONFIG['_MSC_VER']:
  CXXFLAGS += [
    '-wd4350', # behavior change: 'std::_Wrap_alloc<std::allocator<_Ty>>::...
    '-wd4275', # non dll-interface class used as base for dll-interface class
    '-wd4548', # Expression before comma has no effect
    '-wd4625', # copy constructor could not be generated.
    '-wd4626', # assugment operator could not be generated.
    '-wd4640', # construction of local static object is not thread safe.

    # This is intended as a temporary hack to support building with VS2015.
    # declaration of '*' hides class member
    '-wd4458',
  ]
